import ArkPaginationTableOptionsDefault, {
  ArkPaginationTableOptions
} from "../ark-pagination-table/ArkPaginationTableOptions";
import {ArkFilterFormOptions} from "../ark-filter-form/ArkFilterFormOptions";
import {ArkSideTreeOptions} from "../../common/ark-side-tree/ArkSideTreeOptions";
import {ArkActionBarOptions} from "../../common/ark-action-bar/ArkActionBarOptions";

export interface ArkCompositeTableOptions {
  /**
   * 是否显示侧边树
   *
   * 如未设置，则考虑 sideTreeOptions 属性
   * */
  showSideTree?: boolean;
  /** 侧边可调整的最小宽度 */
  sideMinWidth?: number;
  /** 侧边可调整的最大宽度 */
  sideMaxWidth?: number;
  /** 侧边树选项 */
  sideTreeOptions?: ArkSideTreeOptions;

  /**
   * 是否显示操作栏
   *
   * 如未设置，则考虑 actionBarOptions 属性
   */
  showActionBar?: boolean;
  /** 操作栏选项 */
  actionBarOptions?: ArkActionBarOptions;

  /**
   * 是否显示过滤表单
   *
   * 如未设置，则考虑 filterFormOptions 属性
   * */
  showFilterForm?: boolean;
  /** 过滤表单选项 */
  filterFormOptions?: ArkFilterFormOptions;

  /** 表格选项对象 */
  tableOptions?: ArkPaginationTableOptions;
}

/** options默认值 */
const arkCompositeTableOptionsDefault: Partial<ArkCompositeTableOptions> = {
  sideMinWidth: 205,
  sideMaxWidth: 470,
  tableOptions: ArkPaginationTableOptionsDefault,
};
export default arkCompositeTableOptionsDefault;